Method and System for Color Adjustment

ABSTRACT

A method of adjusting the color of images captured by a plurality of cameras comprises the steps of receiving a first image captured by a first camera from the plurality of cameras, analyzing the first image to separate the pixels in the first image into background pixels and foreground pixels, selecting pixels from the background pixels that have a color that is a shade of gray, determining the amount to adjust the colors of the selected pixels to move their colors towards true gray, and providing information for use in adjusting the color components of images from the plurality of cameras.

BACKGROUND

Color features play a very important role in the analysis performed byintelligent surveillance systems, such as in forensic searches usingvarious analytics and algorithms. These systems sometimes utilize alarge number of cameras. A challenging issue in the analysis performedby these intelligent systems is finding the best matches of objects withsimilar colors. For example, in order to make sure the objects trackedacross cameras are the same objects, color features of the objects arecompared. Only objects with similar color features are consideredmatched objects and are tracked across cameras in the system. In thecase of forensic searches where an exemplary object is provided for thesearch, the system identifies objects with similar color features andprovides them as search results.

In these exemplary applications, as well as others, color matchingpresents a significant challenge. The color temperatures of the camerasin the system may be different due to the color gain adjustment in thewhite balance processing. In general, proper camera white balancingtakes the “color temperature” of a light source into account, whichrefers to the relative warmth or coolness of white light. Digitalcameras can create blue, red, or even green color casts to the imagecaptured by the camera. Since the cameras monitoring even the same fieldof view may use different white balance parameters and generate imageswith different color temperature, it is possible that the colors of thesame object are dramatically different from camera to camera.Accordingly, there has been a need in the industry for a method andsystem of providing consistent color of an object across cameras in thesystem to facilitate analysis of the objects.

SUMMARY

An example of a method of adjusting the color of images captured by aplurality of cameras includes the steps of receiving a first imagecaptured by a first camera from the plurality of cameras, analyzing thefirst image to separate the pixels in the first image into backgroundpixels and foreground pixels, selecting pixels from the backgroundpixels that have a color that is a shade of gray, determining the amountto adjust the colors of the selected pixels to move their colors towardstrue gray, and providing information for use in adjusting the colorcomponents of images from the plurality of cameras.

Implementation of such a method may include one or more of the followingfeatures. The selecting step includes selecting a range of pixelswherein true gray is included in the selected range. The determiningstep includes determining the maximum bins in the histograms of the Cband Cr components of the selected pixels. The determining step includesdetermining the mean colors for the color components of the selectedpixels. The method further includes the step of adjusting the color ofthe plurality of cameras by using the provided information. The methodfurther includes the step of determining an overlap region in the fieldof views of the plurality of cameras, and wherein the selecting stepincludes selecting pixels from the background pixels that have a colorthat is a shade of gray and are located in an overlap area, thedetermining step includes determining the amount to adjust the color ofthe selected pixels in the overlap area to move their colors towardstrue gray and the method further comprises the step of adjusting thewhite balance of cameras in the plurality of cameras having an overlaparea based on the determined adjustment amount.

An example of a system for adjusting the color of images captured by aplurality of cameras includes a network, a plurality of camerasconnected to the network, and a processor connected to the network andbeing adapted to receive a first image captured by a first camera fromthe plurality of cameras, to analyze the first image to separate thepixels in the first image into background pixels and foreground pixelsto select pixels from the background pixels that have a color that is ashade of gray, to determine the amount to adjust the colors of theselected pixels to move their colors towards true gray, and to provideinformation for use in adjusting the color components of images from theplurality of cameras.

Implementation of such a method may include one or more of the followingfeatures. The processor is adapted to select a range of pixels whereintrue gray is included in the selected range. The processor is adapted todetermine the maximum bins in the histograms of the Cb and Cr componentsof the selected pixels. The processor is adapted to determine the meancolors for the color components of the selected pixels. The processor isadapted to adjust the color of the plurality of cameras by using theprovided information. The first camera has a first field of view and asecond camera from the plurality of cameras has a second field of viewand the second field of view has an overlap region with the first fieldof view, and the processor is adapted to determine an overlap region inthe field of views of the plurality of cameras, to select pixels fromthe background pixels that have a color that is a shade of gray and arelocated in an overlap area, to determine the amount to adjust the colorof the selected pixels in the overlap area to move their colors towardstrue gray, and to adjust the white balance of cameras in the pluralityof cameras having an overlap area based on the determined adjustmentamount.

An example of a non-transitory computer readable medium includesinstructions configured to cause a processor to receive a first imagecaptured by a first camera from a plurality of cameras, to analyze thefirst image to separate the pixels in the first image into backgroundpixels and foreground pixels; to select pixels from the backgroundpixels that have a color that is a shade of gray; to determine theamount to adjust the colors of the selected pixels to move their colorstowards true gray; and to provide information for use in adjusting thecolor components of images from the plurality of cameras.

Implementation of such a non-transitory computer medium may include oneor more of the following features. The instructions to cause a processorto select pixels from the background pixels that have a color that is ashade of gray include instructions to cause a processor to select arange of pixels wherein true gray is included in the selected range. Theinstructions to cause a processor to determine the amount to adjust thecolors of the selected pixels to move their colors towards true grayinclude instructions to cause a processor to determine the maximum binsin the histograms of the Cb and Cr components of the selected pixels.The instructions to cause a processor to determine the amount to adjustthe colors of the selected pixels to move their colors towards true grayinclude instructions to cause a processor to determine the mean colorsfor the color components of the selected pixels. The non-transitorycomputer readable medium includes further instructions to cause aprocessor to adjust the color of the plurality of cameras by using theprovided information. The non-transitory computer readable mediumincludes further instructions to cause a processor to determine anoverlap region in the field of views of the plurality of cameras, andwherein the instructions to cause a processor to select pixels from thebackground pixels that have a color that is a shade of gray includeinstructions to cause a processor to select pixels from the backgroundpixels that have a color that is a shade of gray and are located in anoverlap area, the instructions to cause a processor to determine theamount to adjust the colors of the selected pixels to move their colorstowards true gray include instructions to cause a processor to determinethe amount to adjust the color of the selected pixels in the overlaparea to move their colors towards true gray and further includesinstructions to cause a processor to adjust the white balance of camerasin the plurality of cameras having an overlap area based on thedetermined adjustment amount.

The processes and systems described herein, and the attendantadvantages, applications, and features thereof, will be more fullyunderstood by a review of the following detailed description, figures,and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of one embodiment of a surveillance system inwhich various aspects of providing consistent color across cameras inthe system can be implemented.

FIG. 2 is an exemplary block diagram of one embodiment of a workstationfor use in the surveillance system shown in FIG. 1.

FIG. 3 is an exemplary block diagram of one embodiment of a camera foruse in the surveillance system shown in FIG. 1.

FIG. 4 is a simplified, exemplary illustration of an image captured by acamera.

FIG. 5 is an exemplary illustration of the areas chosen for the analysisfrom FIG. 4.

FIG. 6 is an illustration of an exemplary histogram for the areas chosenfor analysis in FIG. 5.

FIG. 7 is an illustration of an exemplary histogram after coloradjustment.

DETAILED DESCRIPTION

Referring to FIG. 1, a video surveillance system 10 has a network 12which can be a closed network, local area network, or wide area network,such as the Internet. A plurality of cameras 14, 16, and 18 areconnected to network 12 by a wired or wireless connection to providereal-time video streams. Workstation 22, which can be, for example, acontrol point in surveillance system 10, a server, a digital videorecorder, a personal computer or a user logged into surveillance system10 by means of a laptop computer, is connected to network 12 via a wiredor wireless connection. Cameras 14, 16, and 18 provide video streams toworkstation 22 via network 12. Device 20 is connected to network 12 andcan be another workstation, control point, network manager, systemstorage or other suitable device. One or more of cameras 14, 16, and 18can be a movable camera, such as a PTZ camera that allows a user toadjust the pan, tilt, and zoom of the camera. In addition, one or moreof cameras 14, 16, and 18 can have their own processor and storage forperforming analytics and algorithms on their respective video streams.Surveillance system 10 can be configured as a distributed system wherethe system control and processing of data is performed by variousdevices such as workstation 22 and device 20, or surveillance system 10can be configured as a host computer system where, for example,workstation 22 can be the host. The cameras in surveillance system 10can have separate fields of view, or they may overlap as shown byoverlap area 17.

With reference to FIG. 2, one embodiment of an exemplary workstation forperforming various aspects of configuring a camera is shown in blockdiagram form. Workstation 22 has a central or host processor 26 which isconnected to input/output 24, ROM 28, RAM 30, video display 35, storage32 and user input device 36. User input device 36 can be a keyboard,mouse, controller, or other suitable input device. Processor 26implements algorithms and programs that are stored in ROM 28, storage32, which could be a disk drive for example, or in storage locatedelsewhere in surveillance system 10, such as device 20, in response touser input from user input device 36 and provides output signals todisplay 35. Input/output 24 is connected to network 12 to receive thevideo streams from cameras 14, 16, and 18, and to send configuration andcontrol signals to cameras 14, 16, and 18 in FIG. 1. In addition,input/output 24 also can receive signals from device 20, such as thealgorithms to implement various aspects of forensic searching on thevideo streams received from one or more of cameras 14, 16, and 18. Theprograms and algorithms stored, for example, in storage 32 are loaded atrun time to enable a user to conduct forensic searches utilizingalgorithms to analyze the video streams received over network 12 byinteracting with the graphical user interface on display 35 with userinput device 36. The results of the forensic search performed byprocessor 26 can be displayed on display 35.

Referring to FIG. 3, an embodiment of an exemplary camera 50 isillustrated. The embodiment of camera 50 could be implemented in one ormore of cameras 14, 16, and 18. Although camera 50 is shown as a singleunit having multiple functions contained therein, other embodimentscould include a plurality of discrete units implementing one or morefunctions. Camera 50 has an imaging device 52 which would include, forexample, a lens and image sensor. Imaging device 52 has a field of viewillustrated as defined by dotted lines 54 and 56. Line 58 illustratesthe background of the field of view and line 62 illustrates an object ofinterest in the foreground, such as a person walking. Imaging device 52is connected to processor 64 and provides the output of its imagingsensor to processor 64. Processor 64 is connected to memory 66 which canbe comprised of any suitable data storage such as, for example, RAM,ROM, magnetic disk drive or optical disk drive.

Memory 66 contains software indicated by block 68 which provides variousalgorithms that are used by processor 64 to analyze the video streamprovided by imaging device 52. For example, as frames of the field ofview of camera 50 are captured, these frames are processed by processor64 in accordance with the methods provided by the software algorithmsand analytics stored in memory 66 to determine if one or more movingobjects are present. An exemplary method might use a Gaussian mixturemodel to separate a foreground that contains images of moving objectsfrom a background that contains images of static objects, such as trees,buildings, and roads. The images of these moving objects are thenprocessed to identify various characteristics of the images of themoving objects, such as color.

Using the images of the moving objects, processor 64 creates metadataassociated with the images of each moving object in the respective videoframes. Metadata associated with or linked to, an object containsinformation regarding various characteristics of the images of theobject. For example, the metadata may include information oncharacteristics such as location of the object, height of the object,width of the object, direction the object is moving, the speed theobject is moving, color of the object, and a categorical classificationof the object, for example, person or vehicle. Input/output 70 which isconnected to processor 64 interfaces with the network or othercommunication channel to provide the camera output illustrated as frame72. Frame 72 comprises metadata 74 and video data 76. The metadata isstored in a data file either associated with or linked to the videodata. The metadata can be utilized by, for example, workstation 22 toconduct forensic analysis of the video images provided by one or more ofthe cameras in surveillance system 10. These searches can includecomplex analysis involving a plurality of cameras in the system, such astracking an object as it moves about the site monitored by the system sothat images of a moving object may captured by multiple cameras in thesystem at the same point in time or at different points in time.

One exemplary embodiment for implementing the techniques describedherein utilizes a color space such as YCbCr (where Y is luminance, Cb isthe blue-difference chroma component and Cr is the red-difference chromacomponent), RGB (where R is the red component, G is the green component,and B is the blue component), HSV (where H is the hue, S is thesaturation and V is the brightness value), or other suitable colorspaces. An exemplary implementation is described below with reference tothe YCbCr color space.

The video frames captured by a camera are processed with algorithms andanalytics as discussed above to extract a moving object from the stillbackground and to track the moving object. The pixels are classified asforeground or background pixels depending on their similarity with thebackground model. The foreground pixels are the pixels from movingobjects in the scene. These foreground pixels are ignored in thefollowing analysis since they may drift the color parameters due to thedifferent appearance of them as the object moves within the scene.

Within the background pixels, the pixels that satisfy certain criteriaare considered grayish pixels. For all the pixels, P_(i), in the YCbCrcolor space, where P_(i) is defined as

P _(i)=(Y _(i) ,Cb _(i) ,Cr _(i)),

the grayish pixels are defined as the set of pixels

{P _(j) |Y _(j) >t _(ymin)&Y _(j) <t _(ymax)&Cb _(j) >t _(cmin)&Cb _(j)<t _(cmax)&Cr _(j) >t _(cmin)&Cr _(j) <t _(cmax)}

Where t_(y min) and t_(y max) are the minimal and maximal thresholds forintensity channels, and t_(c min) and t_(c max) are the thresholds forcolor channels. A heuristic search method can be used to determine thethresholds for the color channels. Initially t_(c min) is set to 120,and t_(c max) is set to 136. The background pixels are scanned todetermine the number of grayish pixels. If the number of grayish pixelsis greater than a threshold, for example, 1% of the total backgroundpixels, the search is stopped. If the number of grayish pixels is lessthan the threshold, t_(c min) is reduced and t_(c max) is increased by astep of; for example, 4, and the scan is performed again until thegrayish pixel number fulfills the stop threshold criteria. Hard boundscan be set for t_(c min) at 112 and t_(c max) at 144 to avoid theselection of false grayish colors, i.e., the colors that are notgrayish. Preferred thresholds are t_(c min) at 120 and t_(c max) at 136.The thresholds for the intensity channels can also be determined by aheuristic method, and suitable values for t_(y man) and t_(y max) canbe, for example, 50 and 220 respectively. The thresholds for differentcolor channels can be different. For different color temperatures, theCb and Cr channels are drifted toward different directions, and thethresholds are adjusted accordingly. The intensity thresholds ensurethat pixels that are too dark or too bright are not included since theseoften contain distorted colors. The color thresholds ensure that pixelswith significant colors, i.e., colors that are rich in color and are notgrayish, are not included.

FIG. 4 is a simplified illustration of an image 100 captured by acamera. Image 100 has a plurality of areas 101, through 105 whichillustrate areas of the captured image that have different colors. Inthis illustration, it is assumed that areas 101 and 104 are areas thathave different shades of gray, and 103 through 105 are other colors suchas blue, brown, green, and so forth or a plurality or blend of differentcolors in an area. Areas 101 and 104 may also have varying shades ofgray. FIG. 5 illustrates the areas that are chosen for the analysis,that is, the grayish pixels automatically selected with the formulaabove. These areas have been indicated with cross-hatching to illustratethat only these areas are considered in the analysis. It should be notedthat in an actual application there will typically be numerous areas inthe captured image that have a shade of gray. The illustration in FIG. 4has been simplified to facilitate the explanation of the exemplarymethod.

An illustration of exemplary histograms H_(Cb) and H_(Cr) of the grayishpixels in the Cb and Cr components from the selected grayish pixelsillustrated in FIG. 5 are shown in FIG. 6. The pixel value from 0 to 255is shown on the horizontal axis, and the pixel number is shown on thevertical axis. The line indicated by numeral 130 is the exemplaryhistogram of the Cr channel, and the line indicated by numeral 132 isthe exemplary histogram of the Cb channel. A true gray pixel will have avalue of 128 in the Cb and Cr channels. The next step in the method ofthis embodiment is to determine the amount to adjust or correct thecolors in order to make the Cb and Cr channels of the selected grayishpixels adjusted towards 128 via a probability distribution measurement.Since the grayish colors are distributed around 128 but are not exactlyat 128, the probability center of the distribution of the CB and Crhistograms are moved to 128. The term grayish means that the appearanceof the pixels are not blueish, redish, or greenish, but rather look likegray. The correction or adjustment amount can be determined by differentmethods.

A first exemplary method for determining the amount to correct thecolors in order to make the grayish pixels more “grayish” is to find themaximal bins k_(Cb) and K_(Cr) which are illustrated by numerals 134 and136 respectively, which coincide with peaks 138 and 140 respectively inthe histograms in FIG. 6, and then adjust them to 128. Exemplary firstequations for correcting the colors can be expressed as follows:

${Cb}_{j}^{\prime} = {{Cb}_{j}\frac{128}{k_{Cb}}}$ and${Cr}_{j}^{\prime} = {{Cr}_{j}{\frac{128}{k_{Cr}}.}}$

Exemplary second equations for correcting the colors can be expressed asfollows:

Cb′ _(j) =Cb _(j)+(128−k _(Cb))

and

Cr′=Cr _(j)+(128−k _(Cr)).

A second exemplary method for determining the amount to correct thecolors in order to make the grayish pixels to be more “grayish” is tofind the mean values of colors m_(Cb) and m_(Cr) from the histograms asfollows:

$m_{Cb} = {\sum\limits_{k = 0}^{255}{p_{k}^{Cb}{H_{Cb}(k)}}}$ and$m_{Cr} = {\sum\limits_{k = 0}^{255}{p_{k}^{Cr}{{H_{Cr}(k)}.}}}$

First exemplary equations to correct the colors using the mean values ofcolor from the histograms can be expressed as follows:

${Cb}_{j}^{\prime} = {{Cb}_{j}\frac{128}{m_{Cb}}}$ and${Cr}_{j}^{\prime} = {{Cr}_{j}{\frac{128}{m_{Cr}}.}}$

Second exemplary equations to correct the colors using the mean valuesof color from the histograms can be expressed as follows:

Cb″ _(j) =Cb _(j)+(128−m _(Cb))

and

Cr″ _(j) =Cr _(j)+(128−m _(Cr)).

The original image is then adjusted using, for example, one of theforegoing methods. FIG. 7 illustrates exemplary adjusted histograms forthe grayish pixels shown in FIG. 6.

Processor 64 of camera 50 will send out information about moving objectswith their locations, sizes, color features such as average colors ordominant colors of the objects as scene description in the metadata.With this exemplary embodiment of the color adjustment method, the colorparameters (k_(Cb), k_(Cr)) or (m_(Cb), m_(Cr)) will also be includedinto the scene description as a part of color description of the scene.At the server side, the received metadata are parsed, and the colorfeatures can be adjusted based on these values. For example, if weextract color features of Cb and Cr components in the direct cosinetransform (DCT) frequency domain, the dc components of Cb and Cr can beadjusted with the equations discussed above. With these adjusted colorfeatures, object matching and forensic searches can provide moreconsistent results across the cameras.

The color adjustment method can also be applied to unify the whitebalance across cameras if the cameras have overlapped areas, such asoverlap area 17 of cameras 16 and 18 in FIG. 1. An image registrationalgorithm such as Scale-Invariant Feature Transform (SIFT), Speeded UpRobust Feature (SURF), or Affine-SIFT (ASIFT) can be applied todetermine correspondence of feature points between the cameras. With theperspective transform parameters that can be determined from the pointcorrespondence, the grayish pixels of the common areas between thecameras can be located. The white balance can be done based on the colorparameters (k_(Cb), k_(Cr)) or (m_(Cb), m_(Cr)) of the common area usingequations set forth above.

The processes and methods described and shown herein can be stored on anon-transitory computer readable medium, which refers to anynon-transitory storage device used for storing data accessible by acomputer, for example, a magnetic hard disk, a floppy disk, an opticaldisk, such as a CD-ROM or a DVD, a magnetic tape, a memory chip, and acarrier wave which may be in the form of electromagnetic signals,acoustic signals, optical signals and other like earner waves on whichinstructions can be encoded in accordance with various configurations ofthe invention. The computer readable medium may be separate from thecomputer system and may be provided in an installation package such thatthe computer readable medium may be used to program, configure and adapta general purpose computer with the instructions and code storedthereon. These instructions might take the form of executable code whichis executable by the computer system and may take the form of sourcecode or installable code, which upon compilation and installation on thecomputer system, for example, using any of a variety of generallyavailable compilers, installation programs, compression utilities,decompression utilities, and so forth, then takes the form of executablecode.

Although the various embodiments discussed herein have pertained to avideo surveillance system, the same processes and methods can beutilized with cameras and video data captured by commercial andnoncommercial systems outside of the surveillance environment.

Other examples of configuration and implementation are within the scopeand spirit of the disclosure and appended claims. For example, due tothe nature of software, functions described herein can be implementedusing software executed by a processor, hardware, firmware, hardwiring,or combinations of any of these. Features implementing functions mayalso be physically located at various positions, including beingdistributed such that portions of functions are implemented at differentphysical locations. Also, as used herein, including the claims, “or” asused in a list of items prefaced by “at least one of” indicates adisjunctive list such that, for example, a list of “at least one of A,B, or C” means A or B or C or AB or AC or BC or ABC (i.e., A and B andC). In addition, it is to be understood that more than one invention maybe disclosed herein.

What is claimed is:
 1. A method of adjusting the color of imagescaptured by a plurality of cameras comprising the steps of: receiving afirst image captured by a first camera from the plurality of cameras;analyzing the first image to separate the pixels in the first image intobackground pixels and foreground pixels; selecting pixels from thebackground pixels that have a color that is a shade of gray; determiningthe amount to adjust the colors of the selected pixels to move theircolors towards true gray; and providing information for use in adjustingthe color components of images from the plurality of cameras.
 2. Amethod as recited in claim 1 wherein the selecting step comprisesselecting a range of pixels wherein true gray is included in theselected range.
 3. A method as recited in claim 1 wherein thedetermining step comprises determining the maximum bins in thehistograms of the Cb and Cr components of the selected pixels.
 4. Amethod as recited in claim 1 wherein the determining step comprisesdetermining the mean colors for the color components of the selectedpixels.
 5. A method as recited in claim 1 further comprising the step ofadjusting the color of the plurality of cameras by using the providedinformation.
 6. A method as recited in claim 1 further comprisingdetermining an overlap region in the field of views of the plurality ofcameras, and wherein the selecting step comprises selecting pixels fromthe background pixels that have a color that is a shade of gray and arelocated in an overlap area, the determining step comprises determiningthe amount to adjust the color of the selected pixels in the overlaparea to move their colors towards true gray and further comprising thestep of adjusting the white balance of cameras in the plurality ofcameras having an overlap area based on the determined adjustmentamount.
 7. A system for adjusting the color of images captured by aplurality of cameras comprising: a network; a plurality of camerasconnected to the network; and a processor connected to the network andbeing adapted to receive a first image captured by a first camera fromthe plurality of cameras, to analyze the first image to separate thepixels in the first image into background pixels and foreground pixelsto select pixels from the background pixels that have a color that is ashade of gray, to determine the amount to adjust the colors of theselected pixels to move their colors towards true gray, and to provideinformation for use in adjusting the color components of images from theplurality of cameras.
 8. A system as recited in claim 7 wherein theprocessor is adapted to select a range of pixels wherein true gray isincluded in the selected range.
 9. A system as recited in claim 7wherein the processor is adapted to determine the maximum bins in thehistograms of the Cb and Cr components of the selected pixels.
 10. Asystem as recited in claim 7 wherein the processor is adapted todetermine the mean colors for the color components of the selectedpixels.
 11. A system as recited in claim 7 wherein the processor isadapted to adjust the color of the plurality of cameras by using theprovided information.
 12. A system as recited in claim 7 wherein thefirst camera has a first field of view and a second camera from theplurality of cameras has a second field of view and the second field ofview has an overlap region with the first field of view and theprocessor is adapted to determine an overlap region in the field ofviews of the plurality of cameras, to select pixels from the backgroundpixels that have a color that is a shade of gray and are located in anoverlap area, to determine the amount to adjust the color of theselected pixels in the overlap area to move their colors towards truegray, and to adjust the white balance of cameras in the plurality ofcameras having an overlap area based on the determined adjustmentamount.
 13. A non-transitory computer readable medium comprisinginstructions configured to cause a processor to: receive a first imagecaptured by a first camera from a plurality of cameras; to analyze thefirst image to separate the pixels in the first image into backgroundpixels and foreground pixels; to select pixels from the backgroundpixels that have a color that is a shade of gray; to determine theamount to adjust the colors of the selected pixels to move their colorstowards true gray; and to provide information for use in adjusting thecolor components of images from the plurality of cameras.
 14. Anon-transitory computer readable medium as recited in claim 13 whereinthe instructions to cause a processor to select pixels from thebackground pixels that have a color that is a shade of gray compriseinstructions to cause a processor to select a range of pixels whereintrue gray is included in the selected range.
 15. A non-transitorycomputer readable medium as recited in claim 13 wherein the instructionsto cause a processor to determine the amount to adjust the colors of theselected pixels to move their colors towards true gray compriseinstructions to cause a processor to determine the maximum bins in thehistograms of the Cb and Cr components of the selected pixels.
 16. Anon-transitory computer readable medium as recited in claim 13 whereinthe instructions to cause a processor to determine the amount to adjustthe colors of the selected pixels to move their colors towards true graycomprise instructions to cause a processor to determine the mean colorsfor the color components of the selected pixels.
 17. A non-transitorycomputer readable medium as recited in claim 13 further comprisinginstructions to cause a processor to adjust the color of the pluralityof cameras by using the provided information.
 18. A non-transitorycomputer readable medium as recited in claim 13 further comprisinginstructions to cause a processor to determine an overlap region in thefield of views of the plurality of cameras, and wherein the instructionsto cause a processor to select pixels from the background pixels thathave a color that is a shade of gray comprise instructions to cause aprocessor to select pixels from the background pixels that have a colorthat is a shade of gray and are located in an overlap area, theinstructions to cause a processor to determine the amount to adjust thecolors of the selected pixels to move their colors towards true graycomprise instructions to cause a processor to determine the amount toadjust the color of the selected pixels in the overlap area to movetheir colors towards true gray and further comprise instructions tocause a processor to adjust the white balance of cameras in theplurality of cameras having an overlap area based on the determinedadjustment amount.